home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gamers Delight 2
/
Gamers Delight 2.iso
/
Aminet
/
game
/
role
/
SRunMatGen.lha
/
IO.c
< prev
next >
Wrap
C/C++ Source or Header
|
1994-06-26
|
30KB
|
850 lines
/*********************************/
/* MatrixGenerator für ShadowRun */
/* written by Thomas Reinhardt */
/* */
/* Input- und Output-Funktionen */
/*********************************/
#include <time.h>
#include <math.h>
#include <string.h>
#include <exec/interrupts.h>
#include <exec/libraries.h>
#include <exec/lists.h>
#include <exec/memory.h>
#include <exec/nodes.h>
#include <exec/ports.h>
#include <exec/types.h>
#include <intuition/intuition.h>
#include <libraries/dos.h>
#include <libraries/dosextens.h>
#include <proto/dos.h>
#include <proto/exec.h>
#include <proto/graphics.h>
#include <proto/intuition.h>
#include <proto/gadtools.h>
#include <proto/diskfont.h>
#include <stdio.h>
#include <stdlib.h>
#include "MatrixGen.h"
#include "all.h"
extern LONG SaveNamePointer;
extern struct IntuitionBase *IntuitionBase;
extern struct GfxBase *GfxBase;
extern struct Library *DosBase;
extern struct NewScreen MyNewScreen;
extern struct Screen *MyScreen;
extern struct BitMapHeader BMHD;
extern struct ColorRegister Colors[16];
extern struct CommodoreAmiga CAMG;
extern LONG Len,xi,yi,b;
extern ULONG ChunkLen;
extern char *WohinDamit;
extern char GfxName[255];
extern char StatusName[255];
extern char StandardName[255];
extern char TextName[255];
extern char DatenFeld[255];
extern BOOL success,AllDone;
extern int i;
extern char inread[5];
extern int cBitmaps,AnzahlKnoten,AusgangsKnoten,AnzahlWichtigeDaten,Stufenwert;
extern int MaxSAN,AusgangsWichtigeDaten;
extern UBYTE xPos,yPos,MaxFarben,Language,OutputType;
extern struct MatrixKomponenten Matrix[12*12];
extern struct MatrixGenType MatrixDatas[1];
extern BOOL CPUInSystem,Beenden,RandomDSValue,CheckLevelCode;
extern BOOL Zufallsstufen,KeineDatenspeicher,StatusFile,PrefsFile,BlaueKnoten;
extern BOOL Schatten,SaveDatenfeld,InstallNoIC,AlwaysICInfo,AlwaysICDS;
extern UBYTE AnzahlCPU,AnzahlSPU,AnzahlDS,AnzahlSAN,AnzahlSN,AnzahlIOP,Anzahl,AnzahlBlueNodes;
BOOL SaveText(){
LONG OutTextPointer;
char ZWSPName[255];
char InputName[255];
char SrcDat[255];
int i,xx,yy;
BOOL STAT,NOSPACE,HereIsAIC,HereIsWDIC;
FILE *InTextPointer;
UBYTE EOLine[1];
char *PreString[13]={"Error!-","blue-","Blau-","green-","Grün-","orange-","Orange-","red-","Rot-","purple-","Purpur-","black-","Schwarz-"};
char *IceTypeString[22]={"nothing","nichts","Trapped-","Falle-","Access-","Zugang-","Barrier-","Barriere-","Scramble-","Wirbel-","Blaster-","Blaster-","Trace-","Aufspüren-","Killer-","Killer-","Tar Baby-","Teerbaby-","Tar Pit-","Teergrube","Deadly ","tödliches "};
char *IceStufeString[8]={" ","white","weißes","gray","graues","black","schwarzes"};
char *DataString[5]={" ","nothing of interest","keine besonderen Daten","important datas","wichtige Daten"};
char *StufeString[2]={"rating","Stufe"};
EOLine[0]=10;
strcpy(TextName,StandardName);
if(OutputType==0){
strcat(TextName,".DOC");
strcpy(SrcDat,"ASC-");
}
if(OutputType==1){
strcat(TextName,".tex");
strcpy(SrcDat,"TeX-");
}
OutTextPointer=Open(TextName,MODE_NEWFILE);
if(!OutTextPointer){
DisplayErrorMessage("Error : Save(Text)-Datei!");
}
else{
strcpy(InputName,SrcDat);
strcat(InputName,"ALL.e");
if(Language==1){
strcpy(InputName,SrcDat);
strcat(InputName,"ALL.g");
}
InTextPointer=fopen(InputName,"r");
if(!InTextPointer){
sprintf(ZWSPName,"Can´t find %sALL.(l)-Datei ... terminating",SrcDat);
Close(OutTextPointer);
DisplayErrorMessage("Error : can´t find ALL.(l)-Datei!");
}
STAT=FALSE;
i=0;
while(STAT==FALSE){
fscanf(InTextPointer,"%s\n",&ZWSPName[0]);
if((strncmp(&ZWSPName[0],"[END]",5))==0) STAT=TRUE;
if((strncmp(&ZWSPName[0],"[TOT]",5))==0) sprintf(ZWSPName,"%i",AusgangsKnoten);
if((strncmp(&ZWSPName[0],"[CPU]",5))==0) sprintf(ZWSPName,"%i CPU",AnzahlCPU);
if((strncmp(&ZWSPName[0],"[SPU]",5))==0) sprintf(ZWSPName,"%i SPU",AnzahlSPU);
if((strncmp(&ZWSPName[0],"[IOP]",5))==0) sprintf(ZWSPName,"%i IOP",AnzahlIOP);
if((strncmp(&ZWSPName[0],"[DS1]",5))==0) sprintf(ZWSPName,"%i DS",AnzahlDS);
if((strncmp(&ZWSPName[0],"[SAN]",5))==0) sprintf(ZWSPName,"%i SAN",AnzahlSAN);
if((strncmp(&ZWSPName[0],"[SN1]",5))==0) sprintf(ZWSPName,"%i SN",AnzahlSN);
if((strncmp(&ZWSPName[0],"[DSN]",5))==0) sprintf(ZWSPName,"%i",CountMoneyDS());
if(STAT==FALSE){
if((ZWSPName[0]==0x5c)&&(ZWSPName[1]==0x6e)) Write(OutTextPointer,&EOLine[0],1);
else{
Write(OutTextPointer,&ZWSPName[0],strlen(&ZWSPName[0]));
Write(OutTextPointer," ",1);
}
}
}
Write(OutTextPointer,&EOLine[0],1);
fclose(InTextPointer);
for(i=1;i<AnzahlCPU+1;i++){
strcpy(InputName,SrcDat);
strcat(InputName,"CPU.e");
if(Language==1){
strcpy(InputName,SrcDat);
strcat(InputName,"CPU.g");
}
InTextPointer=fopen(InputName,"r");
if(!InTextPointer){
sprintf(ZWSPName,"Can´t find %sCPU.(l)-Datei ... terminating",SrcDat);
Close(OutTextPointer);
DisplayErrorMessage("Error : can´t find CPU-Datei!");
}
STAT=FALSE;
HereIsAIC=FALSE;
NOSPACE=FALSE;
while(STAT==FALSE){
fscanf(InTextPointer,"%s\n",&ZWSPName[0]);
if((strncmp(&ZWSPName[0],"[STF]",5))==0) sprintf(ZWSPName,"%i",GetStufe(i,1));
if((strncmp(&ZWSPName[0],"[END]",5))==0) STAT=TRUE;
if((strncmp(&ZWSPName[0],"[NUM]",5))==0) sprintf(ZWSPName,"%i",i);
if((strncmp(&ZWSPName[0],"[TYP]",5))==0){
NOSPACE=TRUE;
sprintf(ZWSPName,PreString[GetTypeName(i,1)]);
}
if((strncmp(&ZWSPName[0],"[ICT]",5))==0){
NOSPACE=TRUE;
if(GetIceName(i,1)<1) sprintf(ZWSPName,"%s",IceTypeString[GetIceName(i,1)]);
else sprintf(ZWSPName,"%sIC (",IceTypeString[GetIceName(i,1)]);
HereIsAIC=TRUE;
}
if((HereIsAIC==TRUE)&&((strncmp(&ZWSPName[0],"[ICA]",5))==0)){
if(GetIceNameType(i,1)<1) sprintf(ZWSPName,"%s",IceStufeString[GetIceNameType(i,1)]);
else sprintf(ZWSPName,"%s IC)",IceStufeString[GetIceNameType(i,1)]);
HereIsAIC=FALSE;
}
if((HereIsAIC==TRUE)&&((strncmp(&ZWSPName[0],"[ICS]",5))==0)){
if(GetIceStufe(i,1)==0) sprintf(ZWSPName," ");
else sprintf(ZWSPName,"%s %i,",StufeString[Language],GetIceStufe(i,1));
}
if((HereIsAIC==TRUE)&&((strncmp(&ZWSPName[0],"[ICS]",5))==0)){
if(GetIceNameType(i,1)<1) sprintf(ZWSPName,"%s",IceStufeString[GetIceNameType(i,1)]);
else sprintf(ZWSPName,"%s IC)",IceStufeString[GetIceNameType(i,1)]);
HereIsAIC=FALSE;
}
if(STAT==FALSE){
if((ZWSPName[0]==0x5c)&&(ZWSPName[1]==0x6e)) Write(OutTextPointer,&EOLine[0],1);
else{
Write(OutTextPointer,&ZWSPName[0],strlen(&ZWSPName[0]));
if(NOSPACE==FALSE) Write(OutTextPointer," ",1);
NOSPACE=FALSE;
}
}
}
fclose(InTextPointer);
}
for(i=1;i<AnzahlSPU+1;i++){
strcpy(InputName,SrcDat);
strcat(InputName,"SPU.e");
if(Language==1){
strcpy(InputName,SrcDat);
strcat(InputName,"SPU.g");
}
InTextPointer=fopen(InputName,"r");
if(!InTextPointer){
sprintf(ZWSPName,"Can´t find %sSPU.(l)-Datei ... terminating",SrcDat);
Close(OutTextPointer);
DisplayErrorMessage("Error : can´t find -SPU.-Datei!");
}
STAT=FALSE;
HereIsAIC=FALSE;
NOSPACE=FALSE;
while(STAT==FALSE){
fscanf(InTextPointer,"%s\n",&ZWSPName[0]);
if((strncmp(&ZWSPName[0],"[STF]",5))==0) sprintf(ZWSPName,"%i",GetStufe(i,2));
if((strncmp(&ZWSPName[0],"[END]",5))==0) STAT=TRUE;
if((strncmp(&ZWSPName[0],"[NUM]",5))==0) sprintf(ZWSPName,"%i",i);
if((strncmp(&ZWSPName[0],"[TYP]",5))==0){
NOSPACE=TRUE;
sprintf(ZWSPName,PreString[GetTypeName(i,2)]);
}
if((strncmp(&ZWSPName[0],"[ICT]",5))==0){
NOSPACE=TRUE;
if(GetIceName(i,2)<1) sprintf(ZWSPName,"%s",IceTypeString[GetIceName(i,2)]);
else sprintf(ZWSPName,"%sIC (",IceTypeString[GetIceName(i,2)]);
HereIsAIC=TRUE;
}
if((HereIsAIC==TRUE)&&((strncmp(&ZWSPName[0],"[ICA]",5))==0)){
if(GetIceNameType(i,2)<1) sprintf(ZWSPName,"%s",IceStufeString[GetIceNameType(i,2)]);
else sprintf(ZWSPName,"%s IC)",IceStufeString[GetIceNameType(i,2)]);
HereIsAIC=FALSE;
}
if((HereIsAIC==TRUE)&&((strncmp(&ZWSPName[0],"[ICS]",5))==0)){
if(GetIceStufe(i,2)==0) sprintf(ZWSPName," ");
else sprintf(ZWSPName,"%s %i,",StufeString[Language],GetIceStufe(i,2));
}
if((HereIsAIC==TRUE)&&((strncmp(&ZWSPName[0],"[ICS]",5))==0)){
if(GetIceNameType(i,2)<1) sprintf(ZWSPName,"%s",IceStufeString[GetIceNameType(i,2)]);
else sprintf(ZWSPName,"%s IC)",IceStufeString[GetIceNameType(i,2)]);
HereIsAIC=FALSE;
}
if(STAT==FALSE){
if((ZWSPName[0]==0x5c)&&(ZWSPName[1]==0x6e)) Write(OutTextPointer,&EOLine[0],1);
else{
Write(OutTextPointer,&ZWSPName[0],strlen(&ZWSPName[0]));
if(NOSPACE==FALSE) Write(OutTextPointer," ",1);
NOSPACE=FALSE;
}
}
}
fclose(InTextPointer);
}
for(i=1;i<AnzahlIOP+1;i++){
strcpy(InputName,SrcDat);
strcat(InputName,"IOP.e");
if(Language==1){
strcpy(InputName,SrcDat);
strcat(InputName,"IOP.g");
}
InTextPointer=fopen(InputName,"r");
if(!InTextPointer){
sprintf(ZWSPName,"Can´t find %sIOP.(l)-Datei ... terminating",SrcDat);
Close(OutTextPointer);
DisplayErrorMessage("Error : can´t find IOP.(l)-Datei!");
}
STAT=FALSE;
HereIsAIC=FALSE;
NOSPACE=FALSE;
while(STAT==FALSE){
fscanf(InTextPointer,"%s\n",&ZWSPName[0]);
if((strncmp(&ZWSPName[0],"[STF]",5))==0) sprintf(ZWSPName,"%i",GetStufe(i,3));
if((strncmp(&ZWSPName[0],"[END]",5))==0) STAT=TRUE;
if((strncmp(&ZWSPName[0],"[NUM]",5))==0) sprintf(ZWSPName,"%i",i);
if((strncmp(&ZWSPName[0],"[TYP]",5))==0){
NOSPACE=TRUE;
sprintf(ZWSPName,PreString[GetTypeName(i,3)]);
}
if((strncmp(&ZWSPName[0],"[ICT]",5))==0){
NOSPACE=TRUE;
if(GetIceName(i,3)<1) sprintf(ZWSPName,"%s",IceTypeString[GetIceName(i,3)]);
else sprintf(ZWSPName,"%sIC (",IceTypeString[GetIceName(i,3)]);
HereIsAIC=TRUE;
}
if((HereIsAIC==TRUE)&&((strncmp(&ZWSPName[0],"[ICA]",5))==0)){
if(GetIceNameType(i,3)<1) sprintf(ZWSPName,"%s",IceStufeString[GetIceNameType(i,3)]);
else sprintf(ZWSPName,"%s IC)",IceStufeString[GetIceNameType(i,3)]);
HereIsAIC=FALSE;
}
if((HereIsAIC==TRUE)&&((strncmp(&ZWSPName[0],"[ICS]",5))==0)){
if(GetIceStufe(i,3)==0) sprintf(ZWSPName," ");
else sprintf(ZWSPName,"%s %i,",StufeString[Language],GetIceStufe(i,3));
}
if((HereIsAIC==TRUE)&&((strncmp(&ZWSPName[0],"[ICS]",5))==0)){
if(GetIceNameType(i,3)<1) sprintf(ZWSPName,"%s",IceStufeString[GetIceNameType(i,3)]);
else sprintf(ZWSPName,"%s IC)",IceStufeString[GetIceNameType(i,3)]);
HereIsAIC=FALSE;
}
if(STAT==FALSE){
if((ZWSPName[0]==0x5c)&&(ZWSPName[1]==0x6e)) Write(OutTextPointer,&EOLine[0],1);
else{
Write(OutTextPointer,&ZWSPName[0],strlen(&ZWSPName[0]));
if(NOSPACE==FALSE) Write(OutTextPointer," ",1);
NOSPACE=FALSE;
}
}
}
fclose(InTextPointer);
}
for(i=1;i<AnzahlSAN+1;i++){
strcpy(InputName,SrcDat);
strcat(InputName,"SAN.e");
if(Language==1){
strcpy(InputName,SrcDat);
strcat(InputName,"SAN.g");
}
InTextPointer=fopen(InputName,"r");
if(!InTextPointer){
sprintf(ZWSPName,"Can´t find %sSAN.(l)-Datei ... terminating",SrcDat);
Close(OutTextPointer);
DisplayErrorMessage("Error : can´t find SAN.(l)-Datei!");
}
HereIsAIC=FALSE;
STAT=FALSE;
NOSPACE=FALSE;
while(STAT==FALSE){
fscanf(InTextPointer,"%s\n",&ZWSPName[0]);
if((strncmp(&ZWSPName[0],"[STF]",5))==0) sprintf(ZWSPName,"%i",GetStufe(i,5));
if((strncmp(&ZWSPName[0],"[END]",5))==0) STAT=TRUE;
if((strncmp(&ZWSPName[0],"[NUM]",5))==0) sprintf(ZWSPName,"%i",i);
if((strncmp(&ZWSPName[0],"[TYP]",5))==0){
NOSPACE=TRUE;
sprintf(ZWSPName,PreString[GetTypeName(i,5)]);
}
if((strncmp(&ZWSPName[0],"[ICT]",5))==0){
NOSPACE=TRUE;
if(GetIceName(i,5)<1) sprintf(ZWSPName,"%s",IceTypeString[GetIceName(i,5)]);
else sprintf(ZWSPName,"%sIC (",IceTypeString[GetIceName(i,5)]);
HereIsAIC=TRUE;
}
if((HereIsAIC==TRUE)&&((strncmp(&ZWSPName[0],"[ICA]",5))==0)){
if(GetIceNameType(i,5)<1) sprintf(ZWSPName,"%s",IceStufeString[GetIceNameType(i,5)]);
else sprintf(ZWSPName,"%s IC)",IceStufeString[GetIceNameType(i,5)]);
HereIsAIC=FALSE;
}
if((HereIsAIC==TRUE)&&((strncmp(&ZWSPName[0],"[ICS]",5))==0)){
if(GetIceStufe(i,5)==0) sprintf(ZWSPName," ");
else sprintf(ZWSPName,"%s %i,",StufeString[Language],GetIceStufe(i,5));
}
if((HereIsAIC==TRUE)&&((strncmp(&ZWSPName[0],"[ICS]",5))==0)){
if(GetIceNameType(i,5)<1) sprintf(ZWSPName,"%s",IceStufeString[GetIceNameType(i,5)]);
else sprintf(ZWSPName,"%s IC)",IceStufeString[GetIceNameType(i,5)]);
HereIsAIC=FALSE;
}
if(STAT==FALSE){
if((ZWSPName[0]==0x5c)&&(ZWSPName[1]==0x6e)) Write(OutTextPointer,&EOLine[0],1);
else{
Write(OutTextPointer,&ZWSPName[0],strlen(&ZWSPName[0]));
if(NOSPACE==FALSE) Write(OutTextPointer," ",1);
NOSPACE=FALSE;
}
}
}
fclose(InTextPointer);
}
for(i=1;i<AnzahlSN+1;i++){
strcpy(InputName,SrcDat);
strcat(InputName,"SN.e");
if(Language==1){
strcpy(InputName,SrcDat);
strcat(InputName,"SN.g");
}
InTextPointer=fopen(InputName,"r");
if(!InTextPointer){
sprintf(ZWSPName,"Can´t find %sSN.(l)-Datei ... terminating",SrcDat);
Close(OutTextPointer);
DisplayErrorMessage("Error : can´t find SN.(l)-Datei!");
}
NOSPACE=FALSE;
HereIsAIC=FALSE;
STAT=FALSE;
while(STAT==FALSE){
fscanf(InTextPointer,"%s\n",&ZWSPName[0]);
if((strncmp(&ZWSPName[0],"[STF]",5))==0) sprintf(ZWSPName,"%i",GetStufe(i,6));
if((strncmp(&ZWSPName[0],"[END]",5))==0) STAT=TRUE;
if((strncmp(&ZWSPName[0],"[NUM]",5))==0) sprintf(ZWSPName,"%i",i);
if((strncmp(&ZWSPName[0],"[TYP]",5))==0){
NOSPACE=TRUE;
sprintf(ZWSPName,PreString[GetTypeName(i,6)]);
}
if((strncmp(&ZWSPName[0],"[ICT]",5))==0){
NOSPACE=TRUE;
if(GetIceName(i,6)<1) sprintf(ZWSPName,"%s",IceTypeString[GetIceName(i,6)]);
else sprintf(ZWSPName,"%sIC (",IceTypeString[GetIceName(i,6)]);
HereIsAIC=TRUE;
}
if((HereIsAIC==TRUE)&&((strncmp(&ZWSPName[0],"[ICA]",5))==0)){
if(GetIceNameType(i,6)<1) sprintf(ZWSPName,"%s",IceStufeString[GetIceNameType(i,6)]);
else sprintf(ZWSPName,"%s IC)",IceStufeString[GetIceNameType(i,6)]);
HereIsAIC=FALSE;
}
if((HereIsAIC==TRUE)&&((strncmp(&ZWSPName[0],"[ICS]",5))==0)){
if(GetIceStufe(i,6)==0) sprintf(ZWSPName," ");
else sprintf(ZWSPName,"%s %i,",StufeString[Language],GetIceStufe(i,6));
}
if(STAT==FALSE){
if((ZWSPName[0]==0x5c)&&(ZWSPName[1]==0x6e)) Write(OutTextPointer,&EOLine[0],1);
else{
Write(OutTextPointer,&ZWSPName[0],strlen(&ZWSPName[0]));
if(NOSPACE==FALSE) Write(OutTextPointer," ",1);
NOSPACE=FALSE;
}
}
}
fclose(InTextPointer);
}
for(i=1;i<AnzahlDS+1;i++){
strcpy(InputName,SrcDat);
strcat(InputName,"DS.e");
if(Language==1){
strcpy(InputName,SrcDat);
strcat(InputName,"DS.g");
}
InTextPointer=fopen(InputName,"r");
if(!InTextPointer){
sprintf(ZWSPName,"Can´t find %sDS.(l)-Datei ... terminating",SrcDat);
Close(OutTextPointer);
DisplayErrorMessage("Error : can´t find DS.(l)-Datei!");
}
HereIsAIC=FALSE;
STAT=FALSE;
NOSPACE=FALSE;
while(STAT==FALSE){
fscanf(InTextPointer,"%s\n",&ZWSPName[0]);
if((strncmp(&ZWSPName[0],"[END]",5))==0) STAT=TRUE;
if((strncmp(&ZWSPName[0],"[NUM]",5))==0) sprintf(ZWSPName,"%i",i);
if((strncmp(&ZWSPName[0],"[STF]",5))==0) sprintf(ZWSPName,"%i",GetStufe(i,4));
if((strncmp(&ZWSPName[0],"[DFV]",5))==0) sprintf(ZWSPName,"%i",GetDatenWert(i,4));
if((strncmp(&ZWSPName[0],"[DFS]",5))==0) sprintf(ZWSPName,"%i",GetDatenSize(i,4));
if((strncmp(&ZWSPName[0],"[TYP]",5))==0){
NOSPACE=TRUE;
sprintf(ZWSPName,PreString[GetTypeName(i,4)]);
}
if((strncmp(&ZWSPName[0],"[IDT]",5))==0){
sprintf(ZWSPName,DataString[GetDataInfoWert(i,4)]);
}
if((strncmp(&ZWSPName[0],"[ICT]",5))==0){
NOSPACE=TRUE;
if(GetIceName(i,4)<1) sprintf(ZWSPName,"%s",IceTypeString[GetIceName(i,4)]);
else sprintf(ZWSPName,"%sIC (",IceTypeString[GetIceName(i,4)]);
HereIsAIC=TRUE;
}
if((HereIsAIC==TRUE)&&((strncmp(&ZWSPName[0],"[ICA]",5))==0)){
if(GetIceNameType(i,4)<1) sprintf(ZWSPName,"%s",IceStufeString[GetIceNameType(i,4)]);
else sprintf(ZWSPName,"%s IC)",IceStufeString[GetIceNameType(i,4)]);
HereIsAIC=FALSE;
}
if((HereIsAIC==TRUE)&&((strncmp(&ZWSPName[0],"[ICS]",5))==0)){
if(GetIceStufe(i,4)==0) sprintf(ZWSPName," ");
else sprintf(ZWSPName,"%s %i,",StufeString[Language],GetIceStufe(i,4));
}
if((strncmp(&ZWSPName[0],"[WDT]",5))==0){
NOSPACE=TRUE;
if(GetWD(i,4)==TRUE){
sprintf(ZWSPName,"%sIC (",IceTypeString[8+Language]);
}
else sprintf(ZWSPName,"nothing");
HereIsWDIC=TRUE;
}
if((HereIsWDIC==TRUE)&&((strncmp(&ZWSPName[0],"[WDA]",5))==0)){
if(GetWD(i,4)==TRUE){
sprintf(ZWSPName,"%s IC)",IceStufeString[1+Language]);
HereIsWDIC=FALSE;
}
else sprintf(ZWSPName," ");
}
if((HereIsWDIC==TRUE)&&((strncmp(&ZWSPName[0],"[WDS]",5))==0)){
if(GetWD(i,4)==TRUE){
sprintf(ZWSPName,"%s %i,",StufeString[Language],GetWDIceStufe(i,4));
}
else sprintf(ZWSPName," ");
}
if((strncmp(&ZWSPName[0],"[MON]",5))==0){
for(yy=0;yy<12;yy++){
for(xx=0;xx<12;xx++){
if((Matrix[xx+12*yy].Nummer==i)&&(Matrix[xx+12*yy].Type==4)){
sprintf(ZWSPName,"%i",Matrix[xx+12*yy].Datenwert*Matrix[xx+12*yy].Datensize);
}
}
}
}
if(STAT==FALSE){
if((ZWSPName[0]==0x5c)&&(ZWSPName[1]==0x6e)) Write(OutTextPointer,&EOLine[0],1);
else{
Write(OutTextPointer,&ZWSPName[0],strlen(&ZWSPName[0]));
if(NOSPACE==FALSE) Write(OutTextPointer," ",1);
NOSPACE=FALSE;
}
}
}
fclose(InTextPointer);
}
if(OutputType==1){
ZWSPName[0]=0x5c;
Write(OutTextPointer,&ZWSPName[0],1);
sprintf(ZWSPName,"end{document}");
Write(OutTextPointer,&ZWSPName[0],strlen(&ZWSPName[0]));
Write(OutTextPointer,&EOLine[0],1);
}
Close(OutTextPointer);
}
return TRUE;
}
void StatusAusgabe(char *StatName){
LONG StatusFilePointer;
char ZWSPName[255];
CountNodes();
CountBlueDS();
if(StatusFile==TRUE){
StatusFilePointer=Open(StatName,MODE_NEWFILE);
if(!StatusFilePointer){
DisplayErrorMessage("Fehler : Save-Datei nicht anlegbar!");
}
else{
sprintf(ZWSPName,"Status\n");
Write(StatusFilePointer,&ZWSPName[0],strlen(&ZWSPName[0]));
sprintf(ZWSPName,"\n");
Write(StatusFilePointer,&ZWSPName[0],strlen(&ZWSPName[0]));
sprintf(ZWSPName,"Number Of CPU : %3i\n",AnzahlCPU);
Write(StatusFilePointer,&ZWSPName[0],strlen(&ZWSPName[0]));
sprintf(ZWSPName,"Number Of SPU : %3i\n",AnzahlSPU);
Write(StatusFilePointer,&ZWSPName[0],strlen(&ZWSPName[0]));
sprintf(ZWSPName,"Number Of IOP : %3i\n",AnzahlIOP);
Write(StatusFilePointer,&ZWSPName[0],strlen(&ZWSPName[0]));
sprintf(ZWSPName,"Number Of DS : %3i\n",AnzahlDS);
Write(StatusFilePointer,&ZWSPName[0],strlen(&ZWSPName[0]));
sprintf(ZWSPName," Blue DS :(%3i)\n",AnzahlDS);
Write(StatusFilePointer,&ZWSPName[0],strlen(&ZWSPName[0]));
sprintf(ZWSPName,"Number Of SAN : %3i\n",AnzahlSAN);
Write(StatusFilePointer,&ZWSPName[0],strlen(&ZWSPName[0]));
sprintf(ZWSPName,"Number Of SN : %3i\n",AnzahlSN);
Write(StatusFilePointer,&ZWSPName[0],strlen(&ZWSPName[0]));
sprintf(ZWSPName," ---\n");
Write(StatusFilePointer,&ZWSPName[0],strlen(&ZWSPName[0]));
sprintf(ZWSPName,"Number Of : : %3i\n",AusgangsKnoten);
Write(StatusFilePointer,&ZWSPName[0],strlen(&ZWSPName[0]));
sprintf(ZWSPName,"\n");
Write(StatusFilePointer,&ZWSPName[0],strlen(&ZWSPName[0]));
for(yi=0;yi<12;yi++){
for(xi=0;xi<12;xi++){
if(Matrix[xi+12*yi].Type==4){
sprintf(ZWSPName,"Pos(%2i,%2i) Wert:%6i Größe:%3i ",xi,yi,Matrix[xi+12*yi].Datenwert,Matrix[xi+12*yi].Datensize);
Write(StatusFilePointer,&ZWSPName[0],strlen(&ZWSPName[0]));
if(Matrix[xi+12*yi].WichtigeDaten==TRUE){
sprintf(ZWSPName,"! important data !");
Write(StatusFilePointer,&ZWSPName[0],strlen(&ZWSPName[0]));
}
sprintf(ZWSPName,"\n");
Write(StatusFilePointer,&ZWSPName[0],strlen(&ZWSPName[0]));
}
}
}
Close(StatusFilePointer);
}
}
else{
printf("Status\n");
printf("\n");
printf("Number Of CPU : %3i\n",AnzahlCPU);
printf("Number Of SPU : %3i\n",AnzahlSPU);
printf("Number Of IOP : %3i\n",AnzahlIOP);
printf("Number Of DS : %3i\n",AnzahlDS);
printf(" Blue DS :(%3i)\n",AnzahlBlueNodes);
printf("Number Of SAN : %3i\n",AnzahlSAN);
printf("Number Of SN : %3i\n",AnzahlSN);
printf(" ---\n");
printf("Number Of : : %3i\n",AusgangsKnoten);
printf("\n");
for(yi=0;yi<12;yi++){
for(xi=0;xi<12;xi++){
if(Matrix[xi+12*yi].Type==4){
printf("Pos(%2i,%2i) Wert:%6i Größe:%3i ",xi,yi,Matrix[xi+12*yi].Datenwert,Matrix[xi+12*yi].Datensize);
if(Matrix[xi+12*yi].WichtigeDaten==TRUE){
printf("! important data !");
}
printf("\n");
}
}
}
}
}
void ScanPrefs(){
FILE *StatusFilePointer;
char ZWSPName[255];
BOOL STAT;
if(PrefsFile==TRUE){
StatusFilePointer=fopen("MatrixGen.pre","r");
if(!StatusFilePointer){
printf("\n");
printf("Prefs-File Not Found! ... Using Standard-Prefs\n");
printf("\n");
}
else{
STAT=FALSE;
fscanf(StatusFilePointer,"%s",&ZWSPName[0]);
if((strncmp(&ZWSPName[0],"*Header*",8))==0){
while(STAT==FALSE){
fscanf(StatusFilePointer,"%s",&ZWSPName[0]);
if((strncmp(&ZWSPName[0],"[END]",5))==0) STAT=TRUE;
if(STAT==FALSE){
if((strncmp(&ZWSPName[0],"NODES",5))==0){
fscanf(StatusFilePointer,"%s",&ZWSPName[0]);
stcd_i(&ZWSPName[0],&AnzahlKnoten);
}
if((strncmp(&ZWSPName[0],"BLUENODES",9))==0){
fscanf(StatusFilePointer,"%s",&ZWSPName[0]);
if((strncmp(&ZWSPName[0],"YES",3))==0){
BlaueKnoten=TRUE;
}
}
if((strncmp(&ZWSPName[0],"STATUSFILE",10))==0){
fscanf(StatusFilePointer,"%s",&ZWSPName[0]);
if((strncmp(&ZWSPName[0],"YES",3))==0){
StatusFile=TRUE;
}
}
}
if((strncmp(&ZWSPName[0],"GERMAN",6))==0){
fscanf(StatusFilePointer,"%s",&ZWSPName[0]);
if((strncmp(&ZWSPName[0],"YES",3))==0){
MaxFarben=7;
}
}
if((strncmp(&ZWSPName[0],"CHECKDL",7))==0){
fscanf(StatusFilePointer,"%s",&ZWSPName[0]);
if((strncmp(&ZWSPName[0],"YES",3))==0){
CheckLevelCode=TRUE;
}
}
if((strncmp(&ZWSPName[0],"SHADOW",6))==0){
fscanf(StatusFilePointer,"%s",&ZWSPName[0]);
if((strncmp(&ZWSPName[0],"YES",3))==0){
Schatten=TRUE;
}
}
if((strncmp(&ZWSPName[0],"ALWAYSIC",6))==0){
fscanf(StatusFilePointer,"%s",&ZWSPName[0]);
if((strncmp(&ZWSPName[0],"YES",3))==0){
AlwaysICInfo=TRUE;
}
}
if((strncmp(&ZWSPName[0],"ALWAYSDS",6))==0){
fscanf(StatusFilePointer,"%s",&ZWSPName[0]);
if((strncmp(&ZWSPName[0],"YES",3))==0){
AlwaysICDS=TRUE;
}
}
if((strncmp(&ZWSPName[0],"IMPORTANT",9))==0){
fscanf(StatusFilePointer,"%s",&ZWSPName[0]);
stcd_i(&ZWSPName[0],&AnzahlWichtigeDaten);
}
if((strncmp(&ZWSPName[0],"LANGUAGE",8))==0){
fscanf(StatusFilePointer,"%s",&ZWSPName[0]);
if((strncmp(&ZWSPName[0],"ENGLISH",7))==0){
Language=0;
}
if((strncmp(&ZWSPName[0],"DEUTSCH",7))==0){
Language=1;
}
}
if((strncmp(&ZWSPName[0],"MAXSAN",6))==0){
fscanf(StatusFilePointer,"%s",&ZWSPName[0]);
stcd_i(&ZWSPName[0],&MaxSAN);
MaxSAN++;
}
if((strncmp(&ZWSPName[0],"NOMONEY",7))==0){
fscanf(StatusFilePointer,"%s",&ZWSPName[0]);
if((strncmp(&ZWSPName[0],"YES",3))==0){
KeineDatenspeicher=TRUE;
}
}
if((strncmp(&ZWSPName[0],"STANDARDUSE",11))==0){
fscanf(StatusFilePointer,"%s",&ZWSPName[0]);
if((strncmp(&ZWSPName[0],"YES",3))==0){
Zufallsstufen=FALSE;
}
}
if((strncmp(&ZWSPName[0],"NOIC",4))==0){
fscanf(StatusFilePointer,"%s",&ZWSPName[0]);
if((strncmp(&ZWSPName[0],"YES",3))==0){
InstallNoIC=TRUE;
}
}
if((strncmp(&ZWSPName[0],"STANDARDLEVEL",13))==0){
fscanf(StatusFilePointer,"%s",&ZWSPName[0]);
stcd_i(&ZWSPName[0],&Stufenwert);
}
if((strncmp(&ZWSPName[0],"STANDARDFILE",12))==0){
fscanf(StatusFilePointer,"%s",&ZWSPName[0]);
strcpy(StandardName,&ZWSPName[0]);
strcpy(GfxName,StandardName);
strcat(GfxName,".IFF");
strcpy(TextName,StandardName);
}
if((strncmp(&ZWSPName[0],"OUTPUT",6))==0){
fscanf(StatusFilePointer,"%s",&ZWSPName[0]);
if((strncmp(&ZWSPName[0],"TEX",3))==0){
OutputType=1;
}
if((strncmp(&ZWSPName[0],"ASCII",3))==0){
OutputType=0;
}
}
if((strncmp(&ZWSPName[0],"RANDOM",6))==0){
fscanf(StatusFilePointer,"%s",&ZWSPName[0]);
if((strncmp(&ZWSPName[0],"YES",3))==0){
RandomDSValue=TRUE;
}
}
if((strncmp(&ZWSPName[0],"DATAFIELD",9))==0){
fscanf(StatusFilePointer,"%s",&ZWSPName[0]);
if((strncmp(&ZWSPName[0],"YES",3))==0){
SaveDatenfeld=TRUE;
}
}
}
fclose(StatusFilePointer);
AusgangsWichtigeDaten=AnzahlWichtigeDaten;
if(AnzahlKnoten<5) DisplayErrorMessage("option -a, too few nodes");
if(AnzahlKnoten>100) DisplayErrorMessage("option -a, too much nodes");
if(AnzahlWichtigeDaten<0) DisplayErrorMessage("option -i, greater than 0");
if(AnzahlWichtigeDaten>100) DisplayErrorMessage("option -i, smaller than 100");
if(AnzahlWichtigeDaten>AnzahlKnoten) DisplayErrorMessage("option -i, not more than nodes (-a)");
if(MaxSAN<1) DisplayErrorMessage("option -m, greater than 0");
if(MaxSAN>20) DisplayErrorMessage("option -m, smaller than 20");
if(Stufenwert<2) DisplayErrorMessage("option -r, greater than 2");
if(Stufenwert>MaxFarben) DisplayErrorMessage("option -r, smaller than 5, or 7(if -g)");
AusgangsKnoten=AnzahlKnoten;
if(StatusFile==TRUE){
strcpy(StatusName,StandardName);
strcat(StatusName,".STAT");
}
}
else{
printf("\n");
printf("Prefs-File Has Errors! ... Using Standard-Prefs\n");
printf("\n");
fclose(StatusFilePointer);
}
}
}
}
BOOL SaveIFF(char *OpenFileName){
ULONG zwsp[1];
SaveNamePointer=Open(OpenFileName,MODE_NEWFILE);
if(!SaveNamePointer){
DisplayErrorMessage("Error : Save-Gfx(IFF)-Datei!");
}
else{
Write(SaveNamePointer,"FORM",4);
zwsp[0]=4; /* ILBM */
zwsp[0]+=sizeof(BMHD)+8; /* BMHD */
zwsp[0]+=48; /* CMAP */
zwsp[0]+=8; /* CMAP-Header */
zwsp[0]+=12; /* CAMG */
zwsp[0]+=BMHD.Width*BMHD.Height*BMHD.nPlanes/8+8; /* BODY */
Write(SaveNamePointer,&zwsp[0],4);
Write(SaveNamePointer,"ILBM",4);
Write(SaveNamePointer,"BMHD",4);
BMHD.compression=0;
BMHD.masking=0;
zwsp[0]=sizeof(BMHD);
Write(SaveNamePointer,&zwsp[0],4);
Write(SaveNamePointer,&BMHD,sizeof(BMHD));
Write(SaveNamePointer,"CMAP",4);
zwsp[0]=48;
Write(SaveNamePointer,&zwsp[0],4);
Write(SaveNamePointer,&Colors[0],48);
Write(SaveNamePointer,"CAMG",4);
zwsp[0]=4;
Write(SaveNamePointer,&zwsp[0],4);
zwsp[0]=4;
Write(SaveNamePointer,&CAMG,4);
Write(SaveNamePointer,"BODY",4);
zwsp[0]=BMHD.Width*BMHD.Height*BMHD.nPlanes/8;
Write(SaveNamePointer,&zwsp[0],4);
for(yi=0;yi<BMHD.Height;yi++){
for(b=0;b<BMHD.nPlanes;b++){
Write(SaveNamePointer,MyScreen->RastPort.BitMap->Planes[b]+yi*(BMHD.Width/8),BMHD.Width/8);
}
}
}
return TRUE;
}
void SaveData(char *OpenFileName){
ULONG zwsp[1];
LONG StatNamePointer;
StatNamePointer=Open(OpenFileName,MODE_NEWFILE);
if(!StatNamePointer){
DisplayErrorMessage("Error : Stat-Datas-Datei!");
}
else{
Write(StatNamePointer,"FORM",4);
zwsp[0]=20; /* MTRX + DATA + STRT */
zwsp[0]+=sizeof(struct MatrixGenType); /* DATA */
zwsp[0]+=144*sizeof(struct MatrixKomponenten); /* DatenFeld */
Write(StatNamePointer,&zwsp[0],4);
Write(StatNamePointer,"MTGN",4);
Write(StatNamePointer,"DATA",4);
zwsp[0]=sizeof(struct MatrixGenType);
Write(StatNamePointer,&zwsp[0],4);
Write(StatNamePointer,&MatrixDatas[0],sizeof(struct MatrixGenType));
Write(StatNamePointer,"STRT",4);
zwsp[0]=144*sizeof(struct MatrixKomponenten);
Write(StatNamePointer,&zwsp[0],4);
Write(StatNamePointer,&Matrix[0],144*sizeof(struct MatrixKomponenten));
Close(StatNamePointer);
}
}
void LoadData(char *OpenFileName){
ULONG zwsp[255];
LONG StatNamePointer;
StatNamePointer=Open(OpenFileName,MODE_OLDFILE);
if(!StatNamePointer){
DisplayErrorMessage("Error : Stat-Datas-Datei!");
}
else{
Read(StatNamePointer,&zwsp[0],8);
if(strncmp(&zwsp[0],"FORM",4)==0){
Read(StatNamePointer,&zwsp[0],12);
if(strncmp(&zwsp[0],"MTGNDATA",8)==0){
Read(StatNamePointer,&MatrixDatas[0],sizeof(struct MatrixGenType));
Read(StatNamePointer,&zwsp[0],8);
if(strncmp(&zwsp[0],"STRT",4)==0){
Read(StatNamePointer,&Matrix[0],144*sizeof(struct MatrixKomponenten));
Close(StatNamePointer);
if((MatrixDatas[0].Version!=MGVersion)||(MatrixDatas[0].Revision!=MGRevision)){
DisplayErrorMessage("wrong version!");
}
}
else{
Close(StatNamePointer);
DisplayErrorMessage("error in datafield-file");
}
}
else{
Close(StatNamePointer);
DisplayErrorMessage("error in datafield-file");
}
}
else{
Close(StatNamePointer);
DisplayErrorMessage("error in datafield-file");
}
Read(StatNamePointer,&Matrix[0],144*sizeof(struct MatrixKomponenten));
}
}